package com.java2_16;

public class java2_16 {
    //    public static void main(String[] args) {
//        Dog d = new Dog("wangwang",5);
//        System.out.println(d.getName());
//        System.out.println(d.getAge());
//        d.eat();
//        d.swim();
//
//        Frog f = new Frog("xiaoqing",2);
//        System.out.println(f.getName());
//        System.out.println(f.getAge());
//        f.eat();
//        f.swim();
//
//        Rabbit r = new Rabbit("xiaobai",3);
//        System.out.println(r.getName());
//        System.out.println(r.getAge());
//        r.eat();
//
//
//
//
//    }
//    public static void main(String[] args) {
//        PingPongMan p = new PingPongMan("zhangsan",23);
//        System.out.println(p.getName() + " " + p.getAge());
//        p.play();
//        p.speakEnglish();
//        System.out.println("-----------------------------------------");
//
//
//        BasketballCoach b = new BasketballCoach("wangwu",30);
//        System.out.println(b.getName() + " " + b.getAge());
//        b.teach();
//
//
//    }//    public static void show(TestInterFace t){
////        t.drink();
////        t.eat();
////    }
//    public static void main(String[] args) {
////        //接口中的默认方法 + 静态方法 + 私有方法
////        AccomplishInter a = new AccomplishInter();
////        a.eat();
////        //默认方法不强制重写但是不重写就是接口中的方法
//
//        //接口静态方法直接调用
////        TestInterFace.play();
////        AccomplishInter a = new AccomplishInter();
////        a.eat();
////        a.drink();
////
////        TestInterFace.play();
//
////        AccomplishInter a = new AccomplishInter();
////        //接口当形参可以接收所有实现类
////        show(a);
//    public static void main(String[] args) {
//        //适配器设计模式
////        AccomplishInterZi a = new AccomplishInterZi();
////        a.method5();
////        a.method1();
////
////        //适配器设计模式 -- 接口中的方法过多但是又只需要其中的几个，就可以采用此模式
////
////
////
////    }
//
//
//
//
//
//
//
//}
//    public static void main(String[] args) {
//        //内部类
////        NeiBuClass.Test nt = new NeiBuClass().new Test();
//        NeiBuClass.Test nt = new NeiBuClass().new Test();
//        System.out.println(nt.a);
//        System.out.println(nt.school);
//
//        NeiBuClass n = new NeiBuClass();
//        System.out.println(n.getNumber());
//
//
//    }
    public static void main(String[] args) {
//        Swim s = new Swim(){
//            @Override
//            public void swim() {
//                System.out.println("我在游泳");
//            }
//        };

//        show(
//                new Swim() {
//                    @Override
//                    public void swim() {
//                        System.out.println("我在游泳");
//                    }
//                }
//        );


        //    public static void show(Swim s) {
//        System.out.println("成功调用show方法");
//    }
        //匿名代码块 -- 当参数只是用一次时，就可以使用匿名代码块

        show(
                new Dog() {
                    @Override
                    public void eat(){
                        System.out.println("sioufhoawushf");
                    }
                }
        );

    }

    public static void show(Dog d) {
        System.out.println("成功调用show方法");
        d.eat();
    }


}
